// 比较运算 > = < 
console.log('a' < 'b') // 转换成 ascii

console.log(1 < '123') // 如果可以转化成字符串
console.log(1 < 'aaa') // 无法转化数字 就返回 false

// ==
console.log(null == undefined) // true
console.log(null == 0) // null 和 undefined  与其他类型比较 都返回的是 false

console.log({} == {}) 
console.log(NaN == NaN) // NaN 和任何类型比较都不相等
// 字符串和数字比较 将字符串转化成数字
console.log('1' == 1)
console.log(1 == true) // 如果是 Boolean 类型 会把 boolean 转化成数字
// 对象 和 字符串 数字 symbol 比较的时候 会把对象转换成原始数据类型
console.log({} == '[object Object]')

console.log([] == ![])
// [] == ![] 单目运算优先级最高
// 先转换成 boolean 类型 
// [] == false
// [] == 0  // [].valueOf
console.log([].valueOf()) // 不是普通类型
console.log([].toString()) // ''
// '' == 0 Number('')
// 0 == 0
// 相等